package cn.felord.memberservice.service.impl;

import cn.felord.memberservice.entity.SysUserInfo;
import cn.felord.memberservice.mapper.SysUserInfoMapper;
import cn.felord.memberservice.service.SysUserInfoService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

/**
 * Cacheable 在方法执行前Spring先是否有缓存数据，如果有直接返回。如果没有数据，调用方法并将方法返回值存放在缓存当中。
 *
 * CachePut 无论怎样，都将方法的返回值放到缓存当中。
 *
 * CacheEvict 将一条或者多条数据从缓存中删除。
 *
 * Caching 可以通过@Caching注解组合多个注解集合在一个方法上
 * Author: Dax
 * Description:
 * Date: 2018/4/1
 * Time: 20:22
 */

@Service
public class SysUserInfoServiceImpl extends ServiceImpl<SysUserInfoMapper,SysUserInfo> implements SysUserInfoService {
    @CachePut(value = "sysUser",key = "#user.userId")
    public SysUserInfo saveUser(SysUserInfo user) {
        return super.insert(user)?user:null;
    }
    @Cacheable(value = "sysUser",key = "#id")
    public SysUserInfo selectUserById(String id) {
        return super.selectById(id);
    }


}
